专利摘要:
ワイヤレス・プロトコル・スタックの物理(PHY)およびメディア・アクセス制御(MAC)レイヤを内蔵するスマート・トランシーバー・デバイスにおいて、ワイヤレス・プロトコルを実現することができる。種々の実施形態では、シリアル・ペリフェラル・インターフェース(SPI)に基づく設計を用いることができる。開示するのは、スマート・トランシーバー・デバイスの制御を行い、このスマート・トランシーバー・デバイスに対する双方向のデーター転送に備えるために用いることができるプロトコルである。即ち、プロトコル、コマンド、および応答のフォーマットの一例を開示する。更に別の実施形態では、アプリケーション・プログラミング・インターフェース(API)を開示する。このAPIは、システムおよびスマート・トランシーバー・デバイスへのデーターならびにシステムおよびスマート・トランシーバー・デバイスからのデーターを確定し、維持し、伝達するために用いることができる、ハードウェア独立サービスを提供することができる。即ち、一例であって限定ではない1組のサービス、関数コール、コンフィギュレーション設定方法、イベント、およびパラメータを開示する。
公开号:JP2011505755A
申请号:JP2010536058
申请日:2008-11-14
公开日:2011-02-24
发明作者:ガムリチ,デニー;スミス,グレゴリー・レイ;パケンドルフ,ウウェ;ルッソ,デーヴィッド・ダブリュー
申请人:マイクロソフト コーポレーション;
IPC主号:H04L29-06
专利说明:

[0001] ここに開示する主題は、計算および電子分野に関し、更に特定すれば、娯楽用コンソールのような分野に関するが、これらは単なる例に過ぎず、分野に限定はない。]
背景技術

[0002] ビデオ・ゲームおよび娯楽システムは、増々ワイヤレス機構(feature)やアクセサリを組み込みつつある。ワイヤレス無線(wireless radio)および必要なドライバの開発には、多大な設計の手間が必要となる。一方、ワイヤレス・インターフェースを制御および管理するために必要とされるコマンドやプロトコルは、複雑化する可能性があり、ワイヤレス・システムのソフトウェアおよびハードウェア・アクセサリの開発者のために多大な開発資源が必要となる。更に、ワイヤレス技術および関連規格は周波数毎に変化するため、開発者は新しいインターフェース要件に適合させることを強いられる。このため、個々のワイヤレス・インターフェースに合わせた製品を開発する際の開発者の投資は、インターフェースやプロトコルが頻繁に変化するのでは、回収できない場合もある。]
発明が解決しようとする課題

[0003] しかしながら、既存の標準的インターフェース開発ワイヤレス機構およびアクセサリを利用できれば有利であろう。業界において広く用いられ多数の製品によってサポートされているインターフェース規格は、通例、コストを引き下げ、このような市販の構成機器を組み込むことは、製品開発のコストを低減するには望ましいことである。更に、ワイヤレス送受信機の場合、プロセッサー間の通信をサポートするために必要とされるICピンの本数を制限しつつ、同時に十分なデーター帯域幅を提供することが、通例望ましいこととされる。したがって、ワイヤレス・アーキテクチャには簡単なシリアル・インターフェースを選択するとよい。このような従来技術において慣例的に用いられている周知の標準的なインターフェースの1つに、シリアル・ペリフェラル・インターフェース(SPI)がある。SPIインターフェースの欠点の1つは、データー転送が一度に8ビットに制限されることである。多くの用途ではこれまで以上のコマンドおよびデーター転送能力を要求する可能性があるので、シリアル・インターフェースを利用するプロトコルには、一層高いレベルが必要とされる。更に、開発者がワイヤレス機構を利用するために用いることができるインターフェースを提供するものの、当該インターフェースの物理的詳細およびトランスポートの詳細には関与しなくてもよければ有利であろう。]
課題を解決するための手段

[0004] 本明細書では、シリアル・ペリフェラル・インターフェース(SPI)のようなシリアル・インターフェースを用いてビデオ・ゲームおよび娯楽システムのための新たなワイヤレス・アクセサリの開発をサポートするプラットフォームを提供するために、種々のシステム、方法、およびコンピューター読み取り可能命令について開示する。本開示の例示的な非限定的形態の1つでは、スマート・トランシーバー・デバイスが、ワイヤレス・プロトコル・スタックの物理(PHY)およびメディア・アクセス制御(MAC)レイヤ全体を内蔵することができ、ワイヤレス・プロトコル機能を1つのデバイスに割り当てる(partition)。]
[0005] 種々の実施形態では、スマート・トランシーバー・デバイスの制御を行い、このスマート・トランシーバー・デバイスに対する双方向のデーター転送に備えるために用いることができるプロトコルを開示する。即ち、プロトコル、コマンド、および応答に合わせたフォーマットの一例を開示する。]
[0006] 更に別の実施形態では、開発者が、ハードウェアに依存しない1組のサービスを提供するためのインターフェースを提供するアプリケーション・プログラミング・インターフェース(API)を開示する。このようなAPIは、システムおよびスマート・トランシーバー・デバイスへのデーターならびにシステムおよびスマート・トランシーバー・デバイスからのデーターを確定し、維持し、伝達するために用いることができる。サービスは、APIが所望するのに応じて呼び出すことができる。即ち、一例であって限定ではないサービス、関数コール、コンフィギュレーション設定方法、イベント、およびパラメータの集合を開示する。]
[0007] 尚、この摘要は、詳細な説明において以下で更に説明する概念から選択したものを、簡略化した形態で紹介するために設けたことを注記しておく。この摘要は、特許請求する主題の主要な特徴や必須の特徴を特定することを意図するのでなければ、特許請求する主題の範囲を判断する際に補助として用いられることを意図するのでもない。]
図面の簡単な説明

[0008] 以上の摘要、および以下の詳細な説明は、添付図面と合わせて読むと、一層深く理解できよう。本開示を例示するために、本開示の種々の形態を例示する。しかしながら、この開示は、図示する具体的な形態に限定されるのではない。以下の図面が含まれる。]
[0009] 図1は、本明細書において論ずる主題に合わせたコンソールの一例を示す。] 図1
[0010] 図2は、本明細書において論ずる主題に合わせた計算環境の一例を示す。] 図2
[0011] 図3は、本明細書において論ずる主題に合わせたネットワーキング環境の一例を示す。] 図3
[0012] 図4は、本明細書において開示するプロトコルの一実施形態を用いたデーター転送の一例を示す。] 図4
[0013] 図5は、本明細書において開示するプロトコルの一実施形態を用いたデーター転送の一例を示す。] 図5
[0014] 図6は、本明細書において開示するプロトコルの一実施形態を用いたバス転送を図示するタイミング図の一例を示す。] 図6
[0015] 図7は、本明細書において開示するプロトコルの一実施形態を用いるバス転送を図示するタイミング図の一例を示す。] 図7
[0016] 図8は、本明細書において開示するプロトコルの一実施形態を用いるバス転送を図示するタイミング図の一例を示す。] 図8
[0017] 図9は、本明細書において開示する一実施形態を用いたバス転送を図示するタイミング図の一例である。] 図9
[0018] 図10は、本明細書において開示する一実施形態を用いたバス転送を図示するタイミング図の一例である。] 図10
[0019] 図11は、本明細書において開示する一実施形態を用いたバス転送を図示するタイミング図の一例である。] 図11
[0020] 図12は、本明細書において開示するスマート・トランシーバーの一実施形態における起動シグナリングおよびメッセージングの一例を示す図である。] 図12
[0021] 図13は、本明細書において開示するプロトコルの一実施形態を用いるのに適したシステムの一例を示す。] 図13
[0022] 図14は、本明細書において開示するプロトコルの一実施形態を用いるサービス・プリミティブ(service primitive)を用いるデーター通信サービスを示す。] 図14
[0023] 図15は、本明細書において開示するプロトコルの一実施形態を用いるAPIパラメータおよびコンフィギュレーション値を示す。] 図15
[0024] 図16は、本明細書において開示するプロトコルの一実施形態の簡略化した状態遷移図を示す。] 図16
[0025] 図17は、本明細書において開示するAPIの一実施形態の構造例を示す。] 図17
実施例

[0026] ゲーム・コンソール、PC、およびネットワーキングの形態例
本開示のこの章では、一例であり非限定的なゲーム・コンソールの総合的な形態について紹介する。これより図1を参照すると、ブロック図がマルチメディア・コンソールの一例を示す。マルチメディア・コンソール100は、中央処理ユニット(CPU)101を有する。CPU101は、レベル1(L1)キャッシュ102、レベル2(L2)キャッシュ104、およびフラッシュROM(リード・オンリー・メモリー)106を有する。レベル1キャッシュ102およびレベル2キャッシュ104は、一時的にデーターを格納し、したがってメモリー・アクセス・サイクル回数を減らすことによって、処理速度およびスループットを向上させる。フラッシュROM106は、実行可能コードを格納することができる。実行可能コードは、マルチメディア・コンソール100に電力を投入するときのブート・プロセスの初期フェーズの間にロードされる。あるいは、初期ブート・フェーズの間にロードされる実行可能コードをフラッシュ・メモリー・デバイス(図示せず)に格納してもよい。更に、ROM106は、CPU101とは別個に配置してもよい。] 図1
[0027] グラフィクス処理ユニット(GPU)108およびビデオ・エンコーダー/ビデオ・コデック(コーダー/デコーダー)114は、高速および高分解能グラフィクス処理のためのビデオ処理パイプラインを形成する。データーは、グラフィクス処理ユニット108からビデオ・エンコーダー/ビデオ・コデック114に、バスを通じて搬送される。ビデオ処理パイプラインは、テレビジョンまたはその他のディスプレイへの送信のために、データーをA/V(オーディオ/ビデオ)ポート140に出力する。メモリー・コントローラー110がGPU108およびCPU101に接続されており、限定ではないが、RAM(ランダム・アクセス・メモリー)のような、種々の形式のメモリー112へのプロセッサーのアクセスをし易くする。]
[0028] マルチメディア・コンソール100は、I/Oコントローラー120、システム管理コントローラー122、オーディオ処理ユニット123、ネットワーク・インターフェース・コントローラー124、第1USBホスト・コントローラー126、第2USBコントローラー128、および好ましくはモジュール118上に実行するフロント・パネルI/Oサブアセンブリ130を含む。USBコントローラー126および128は、ペリフェラル・コントローラー142(1)〜142(2)、ワイヤレス・アダプタ148、および外部メモリー・ユニット146(例えば、フラッシュ・メモリー、外部CD/DVDROMドライブ、リムーバブル・メディア等)のホストとしての役割を果たす。ネットワーク・インターフェース124および/またはワイヤレス・アダプタ148は、ネットワーク(例えば、インターネット、ホーム・ネットワーク等)へのアクセスを与え、イーサネット(登録商標)・カード、モデム、Bluetoothモジュール、ケーブル・モデム等を含む、多種多様の様々な有線またはワイヤレス・インターフェース・コンポーネントのうち任意のものでよい。]
[0029] システム・メモリー143は、ブート・プロセスの間にロードされるアプリケーション・データーを格納するために設けられている。メディア・ドライブ144が設けられており、DVD/CDドライブ、ハード・ドライブ、またはその他のリムーバブル・メディア・ドライブ等を含むことができる。メディア・ドライブ144は、マルチメディア・コンソール100の内部でも外部でもよい。アプリケーション・データーは、マルチメディア・コンソール100による実行、プレーバック(playback)等のために、メディア・ドライブ144を通じてアクセスすることができる。メディア・ドライブ144は、シリアルATAバスまたはその他の高速接続(例えば、IEEE1394)のようなバスを通じて、I/Oコントローラー120に接続されている。]
[0030] システム管理コントローラー122は、マルチメディア・コンソール100の可用性を確保することに関する種々のサービス機能を提供する。オーディオ処理ユニット123およびオーディオ・コデック132は、先に記載した本開示の形態にしたがって、高信頼度、3D、サラウンド、およびステレオ・オーディオ処理による、対応するオーディオ処理パイプラインを形成する。オーディオ・データーは、オーディオ処理ユニット123とオーディオ・コデック126との間において、通信リンクを通じて搬送される。オーディオ処理パイプラインは、外部オーディオ・プレーヤまたはオーディオ能力を有するデバイスによる再生のために、A/Vポート140にデーターを出力する。]
[0031] フロント・パネルI/Oサブアセンブリ130は、電力ボタン150およびイジェクト・ボタン142の機能をサポートし、更にマルチメディア・コンソール100の外面上に露出する任意のLED(発光ダイオード)またはその他のインディケータの機能もサポートする。システム電源モジュール136は、電力をマルチメディア・コンソール100のコンポーネントに供給する。ファン138は、マルチメディア・コンソール100内部にある回路を冷却する。]
[0032] CPU101、GPU108、メモリー・コントローラー110、およびマルチメディア・コンソール100内部にある種々のその他のコンポーネントは、1系統以上のバスによって相互接続されている。これらのバスには、シリアルおよびパラレル・バス、メモリー・バス、ペリフェラル・バス、ならびに種々のバス・アーキテクチャのうち任意のものを用いたプロセッサーバースまたはローカル・バスが含まれる。]
[0033] マルチメディア・コンソール100に電力を投入するか、またはリブートすると、アプリケーション・データーをシステム・メモリー143からメモリー122および/またはキャッシュ102、104にロードすることができ、CPU101において実行することができる。アプリケーションは、マルチメディア・コンソール100において利用可能な異なるメディア・タイプにナビゲートするときに、一貫性のあるユーザ体験を提供するグラフィカル・ユーザ・インターフェースを提示することができる。動作において、アプリケーションおよび/またはメディア・ドライブ144内に収蔵されているその他のメディアをメディア・ドライブ144から起動(launch)または再生(play)して、追加の機能をマルチメディア・コンソール100に提供することもできる。]
[0034] マルチメディア・コンソール100は、単に単体システムをテレビジョンまたはその他のディスプレイに接続することによって、その単体システムとして動作させることができる。この単体モードでは、マルチメディア・コンソール100は、1人以上のユーザがシステムと相互作用すること、ムービーを見ること、音楽を聞くこと等を可能にすることができる。しかしながら、ネットワーク・インターフェース124またはワイヤレス・アダプタ148を通じて利用可能なブロードバンド接続の統合により、マルチメディア・コンソール100は、更に、それよりも大きなネットワーク共同体における参加者として動作することができる。この後者の想定場面では、コンソール100は、例えば、ネットワークを通じてサーバーに接続することもできる。]
[0035] 次に、これより図2に移ると、先に開示した主題の実現と共に用いるのに適していると考えられる計算機の一例を表すブロック図が示されている。本開示の多数の実施形態は、コンピューターにおいて実行することができる。例えば、ゲーム・コンソールにおいてPC体験を提供するプロセスおよび方法を実行するコンピューター実行可能命令は、図1に示すような計算環境に常駐すること、および/またはそこで実行することができる。計算システム環境220は、適した計算環境の一例に過ぎず、ここに開示する主題の使用範囲や機能について限定を示唆する意図は全くない。また、計算機環境220は、動作環境例220に示す構成要素のいずれの1つまたは組み合わせに関しても、何らかの依存性や必須要件を有するという解釈は行わないこととする。実施形態によって、図示する種々の計算エレメントが、本開示の特定の形態をインスタンス化するように構成されている回路を含むこともあり得る。例えば、本開示において用いられる回路という用語は、ファームウェアまたはスイッチによって機能(1つ又は複数)を実行するように構成されている特殊ハードウェア・コンポを含むことができる。別の実施形態例では、回路という用語は、機能(1つ又は複数)を実行するために動作可能なロジックを具現化するソフトウェア命令によって構成される汎用処理ユニット、メモリー等を含むことができる。回路がハードウェアおよびソフトウェアの組み合わせを含む実施形態例では、実装者(implementer)は、ロジックを具現化するソース・コードを書くことができ、ソース・コードを機械読み取り可能コードにコンパイルすることができ、この機械読み取り可能コードを汎用処理ユニットによって処理することができる。技術的現状では、ハードウェア、ソフトウェア、またはハードウェア/ソフトウェアの組み合わせの間には殆ど差がないというところまで発展していることを当業者は認めることができるので、特定の機能を実行するためにハードウェアまたはソフトウェアのどちらを選択するかということは、実装者に委ねられた設計選択事項である。更に具体的には、ソフトウェア・プロセスを等価のハードウェア構造に変換することができ、更にハードウェア構造自体を等価のソフトウェア・プロセスに変換することができることを、当業者は認めることができる。つまり、ハードウェアの実現例およびソフトウェアの実現例のどちらを選択するかということは、実装者に委ねられた設計選択事項の1つである。] 図1 図2
[0036] コンピューター241は、通例、種々のコンピューター読み取り可能媒体を含む。コンピューター読み取り可能媒体は、コンピューター241がアクセス可能な入手可能な媒体であればいずれでも可能であり、揮発性および不揮発性の双方、リムーバブル、および非リムーバブル媒体を含む。システム・メモリー222は、リード・オンリー・メモリー(ROM)223およびランダム・アクセス・メモリー(RAM)260のような揮発性および/または不揮発性メモリーの形態で、コンピューター記憶媒体を含む。基本入出力システム224(BIOS)は、起動中のように、コンピューター241内のエレメント間におけるデーター転送を補助する基本的なルーティンを含み、通例ROM223内に格納されている。RAM260は、通例、処理ユニット259が直ちにアクセス可能であるデーターおよび/またはプログラム・モジュール、または現在これによって処理されているデーターおよび/またはプログラム・モジュールを収容する。一例として、そして限定ではなく、図2は、オペレーティング・システム225、アプリケーション・プログラム226、その他のプログラム・モジュール227、およびプログラム・データー228を示す。] 図2
[0037] また、コンピューター241は、その他のリムーバブル/非リムーバブル揮発性/不揮発性コンピューター記憶媒体も含むことができる。一例にすぎないが、図2は、非リムーバブル不揮発性磁気媒体からの読み取りおよびこれへの書き込みを行なうハード・ディスク・ドライブ238、リムーバブル不揮発性磁気ディスク254からの読み取りおよびこれへの書き込みを行なう磁気ディスク・ドライブ239、ならびにCD ROMまたはその他の光媒体のようなリムーバブル不揮発性光ディスク253からの読み取りおよびこれへの書き込みを行なう光ディスク・ドライブ240を示す。動作環境の一例において使用可能なその他のリムーバブル/非リムーバブル、揮発性/不揮発性コンピューター記憶媒体には、限定する訳ではないが、磁気テープ・カセット、フラッシュ・メモリー・カード、ディジタル・バーサタイル・ディスク、ディジタル・ビデオ・テープ、ソリッド・ステートRAM、ソリッド・ステートROM等が含まれる。ハード・ディスク・ドライブ238は、通例、インターフェース234のような非リムーバブル・メモリー・インターフェースを介してシステム・バス221に接続され、磁気ディスク・ドライブ239および光ディスク・ドライブ240は、通例、インターフェース235のようなリムーバブル・メモリー・インターフェースによって、システム・バス221に接続する。] 図2
[0038] 先に論じ図2に示すドライブおよびそれらと連動するコンピューター記憶媒体は、コンピューター読み取り可能命令、データー構造、プログラム・モジュール、およびコンピューター241のその他のデーターを格納する。図2では、例えば、ハード・ディスク・ドライブ238は、オペレーティング・システム258、アプリケーション・プログラム257、その他のプログラム・モジュール256、およびプログラム・データー255を格納するように示されている。尚、これらの構成要素は、オペレーティング・システム225、アプリケーション・プログラム226、その他のプログラム・モジュール227、およびプログラム・データー228と同じでも異なっていても可能であることを注記しておく。オペレーティング・システム258、アプリケーション・プログラム257、その他のプログラム・モジュール256、およびプログラム・データー255は、ここで、少なくともこれらが異なるコピーであることを示すために、異なる番号が与えられている。ユーザは、キーボード251、および一般にマウス、トラックボールまたはタッチ・パッドと呼ばれているポインティング・デバイス252によって、コマンドおよび情報をコンピューター241に入力することができる。他の入力デバイス(図示せず)には、マイクロフォン、ジョイスティック、ゲーム・パッド、衛星ディッシュ、スキャナ等を含むことができる。これらおよびその他の入力デバイスは、多くの場合、ユーザ入力インターフェース236を介して、処理ユニット259に接続されている。ユーザ入力インターフェース236は、システム・バスに結合されているが、パラレル・ポート、ゲーム・ポート、またはユニバーサル・シリアル・バス(USB)によって接続することも可能である。モニタ242またはその他の形式の表示装置も、ビデオ・インターフェース232のようなインターフェースを介して、システム・バス221に接続されている。モニタに加えて、コンピューターは、スピーカ244およびプリンタ243のような、その他の周辺出力装置も含むことができ、これらは出力周辺インターフェース233を通じて接続することができる。] 図2
[0039] コンピューター241は、リモート・コンピューター246のような1つ以上のリモート・コンピューターへの論理接続を用いて、ネットワーク環境において動作することも可能である。リモート・コンピューター246は、パーソナル・コンピューター、サーバー、ルータ、ネットワークPC、ピア・デバイス、またはその他の共通ネットワーク・ノードとすることができ、通例、コンピューター241に関して先に説明したエレメントの多くまたは全てを含むが、図2にはメモリー記憶装置247のみを示す。図2に示す論理接続は、ローカル・エリア・ネットワーク(LAN)245およびワイド・エリア・ネットワーク(WAN)249を含むが、他のネットワークも含むことができる。このようなネットワーク環境は、事務所、企業規模のコンピューター・ネットワーク、イントラネットおよびインターネットにおいては、一般的である。] 図2
[0040] LANネットワーク環境で用いる場合、コンピューター241は、ネットワーク・インターフェースまたはアダプタ237を介してLAN245に接続する。WANネットワーク環境で用いる場合、コンピューター241は、通例、モデム250、またはインターネットのようなWAN249を通じて通信を確立するその他の手段を含む。モデム250は、内蔵でも外付けでもよく、ユーザ入力インターフェース236またはその他の適切な機構を介してシステム・バス221に接続することができる。ネットワーク環境では、コンピューター241に関係付けて図示したプログラム・モジュール、またはその一部は、リモート・メモリー記憶装置に格納することもできる。一例として、そして限定ではなく、図2は、リモート・アプリケーション・プログラム248がメモリー・デバイス247上に常駐するものとして示している。尚、図示のネットワーク接続は一例であり、コンピューター間で通信リンクを確立する他の手段も使用可能であることは認められよう。] 図2
[0041] 図3は、ネットワーク型または分散型計算環境の一例の模式図を示す。この環境は、計算機153、156、および157、ならびにオブジェクト155およびデーターベース158を備えている。これらのエンティティ153、155、156、157、および158は、プログラム、方法、データー・ストア、プログラマブル・ロジック等を備えること、またはこれらを利用することができる。エンティティ153、155、156、157、および158は、PDA、オーディオ/ビデオ・デバイス、MP3プレーヤ、スマート・フォン、DVDプレーヤ、ケーブル・ボックス・チューナのような同一デバイスまたは異なるデバイスの部分に跨ることや、あるいはサーバーPCによって提供される遠隔供給コンテンツ(remoted content)に対応可能な任意の計算機の周囲に及ぶこともある。各エンティティ153、155、156、157、および158は、別のエンティティ153、155、156、157、および158と、通信ネットワーク154を通じて通信することができる。これに関して、データーベース158またはその他の記憶エレメントの維持および更新には、任意のエンティティが担当すればよい。] 図3
[0042] このネットワーク154自体は、図3のシステムにサービスを提供する別の計算エンティティを備えることができ、それ自体が複数の相互接続されたネットワークを表すこともできる。ここに開示する本主題の一形態によれば、各エンティティ153、155、156、157、および158は、別個の機能プログラム・モジュールを内蔵することができ、これらのモジュールは、API、あるいはその他のオブジェクト、ソフトウェア、ファームウェア、および/またはハードウェアを利用して、他のエンティティ153、155、156、157、および158の1つ以上のサービスを要求することもできる。] 図3
[0043] また、155のようなオブジェクトを別の計算機にホストしてもよいことは認めることができる。つまり、図示した物理的環境は、接続されているデバイスをコンピューターのように示すことができるが、このような図は単なる一例であり、物理的環境は、代わりに、PDA、テレビジョン、MP3プレーヤ等のような種々のディジタル・デバイス、インターフェース、COMオブジェクト等のようなソフトウェア・オブジェクトを備えることとして図示または記載することもできる。]
[0044] 分散型計算環境をサポートする種々のシステム、コンポーネント、およびネットワーク構成がある。例えば、複数の計算システム同士を、有線システムまたはワイヤレス・システムによって、複数のローカル・ネットワークによって、または広く分散した複数のネットワークによって、互いに接続することができる。現在、多くのネットワークはインターネットに結合されており、インターネットは、広く分散する計算のためにインフラストラクチャを提供し、多くの異なるネットワークを包含する。このようなインフラストラクチャはいずれも、インターネットに結合されているか否かには拘わらず、提供する本システムおよび方法と共に用いることができる。]
[0045] ネットワーク・インフラストラクチャは、クライアント/サーバー、ピア・ツー・ピア、または混成アーキテクチャのような、ネットワーク・トポロジのホストを可能にすることができる。「クライアント」とは、別のクラスのサービスを用いるクラスまたはグループの構成員、またはそれには関係ないグループの構成員である。計算においては、クライアントがプロセスであり、即ち、大まかに命令またはタスクの集合であり、別のプログラムが提供するサービスを必要とする。クライアント・プロセスは、要求されたサービスを利用するが、他のプログラムやサービス自体に関する作業詳細について全く「知る」必要がない。クライアント/サーバー・アーキテクチャ、特に、ネットワーク型システムでは、クライアントは、常に、別のコンピューター、例えば、サーバーが提供する共有ネットワーク資源にアクセスするコンピューターである。図3の例では、任意のエンティティ153、155、156、157、および158を、状況に応じて、クライアント、サーバー、または双方と見なすことができる。そして、更に、娯楽コンソールに関しては、これはサーバーに対するクライアントとすることができる。] 図3
[0046] サーバーは、インターネットのようなリモートまたはローカル・ネットワークを通じてアクセス可能なリモート・コンピューター・システムであるのが通例であるが、必ずしもそうとは限らない。クライアント・プロセスは、第1コンピューター・システムにおいてアクティブであることができ、サーバー・プロセスは第2コンピューター・システムにおいてアクティブであることができ、通信媒体を通じて互いに通信し、こうして分散型機能を提供し、複数のクライアントがサーバーの情報収集能力を利用することを可能にする。複数の計算機またはオブジェクトにまたがって、任意のソフトウェア・オブジェクトを分散することもできる。]
[0047] クライアント(1つ又は複数)およびサーバー(1つ又は複数)は、プロトコル・レイヤ(1つ又は複数)が提供する機能を利用して、互いに通信する。例えば、ハイパーテキスト・トランスファー・プロトコル(HTTP)は、ワールド・ワイド・ウェブ(WWW)即ち「ウェブ」と共に用いられる慣例的なプロトコルである。通例、インターネット・プロトコル(IP)アドレスのようなコンピューター・ネットワーク・アドレス、またはユニバーサル・リソース・ロケータ(URL)のようなその他の基準を用いて、サーバーまたはクライアント・コンピューターを互いに識別することができる。ネットワーク・アドレスをURLアドレスと呼ぶこともできる。通信は、通信媒体を通じて提供することができ、例えば、高容量通信のために、クライアント(1つ又は複数)およびサーバー(1つ又は複数)を互いにTCP/IP接続(1つ又は複数)を通じて結合することもできる。]
[0048] 図3において提示した一般的なフレームワークにしたがって構築することができる多様な計算環境、および図3のようなネットワーク環境における計算において生ずる可能性がある多様性に関して、本明細書において提供するシステムおよび方法を、特定の計算アーキテクチャまたはオペレーティング・システムに限定されるように解釈することは全くできない。逆に、ここに開示する主題は、いずれの1つの実施形態にも限定されず、むしろ、添付した特許請求の範囲にしたがってその広さや範囲を解釈してしかるべきである。つまり、例えば、ゲーム・コンソールおよびサーバーPCについて論じているが、スマート・フォンには入手できないデーターや機能にアクセスする手段として、同じような容易さで、完全なデスクトップをスマート・フォンに遠隔接続することもできる。] 図3
[0049] 最後に、本明細書において記載する種々の技法は、ハードウェアまたはソフトウェアと共に実現することができ、しかるべき場合には双方の組み合わせで実現することもできることも、注記してしかるべきであろう。つまり、ここに開示する主題の方法、コンピューター読み取り可能媒体、およびシステム、あるいはそのある種の形態または一部は、フロッピ・ディスク、CD−ROM、ハード・ドライブ、または他の任意の機械読み取り可能記憶媒体のような有形媒体に具現化したプログラム・コード(即ち、命令)の形態をなすことができ、このプログラム・コードを、コンピューターのような機械にロードして実行すると、この機械が本主題を実施する装置となる。]
[0050] プログラマブル・コンピューターにおけるプログラム・コードの実行という場合では、計算機は概略的にプロセッサー、当該プロセッサー(揮発性および不揮発性メモリーおよび/または記憶エレメントを含む)によって読み取り可能な記憶媒体、少なくとも1つの入力デバイス、および少なくとも1つの出力デバイスを含むことができる。例えば、データー処理API等の使用によって、本開示のドメイン特有プログラミング・モデルの形態の作成および/または実現例を利用することができる1つ以上のプログラムは、好ましくは、コンピューター・システムと通信するために、上位手続き言語またはオブジェクト指向プログラミング言語で実現することが好ましい。しかしながら、プログラム(1つ又は複数)は、望ましければ、アセンブリまたは機械語で実現することもできる。いずれの場合でも、言語は、コンパイラ言語またはインタプリタ言語でもよく、ハードウェアの実現例と組み合わせることができる。
SPIプロトコルおよびコマンド構造]
[0051] 本明細書では、ビデオ・ゲームおよび娯楽システムに合わせた新たなワイヤレス・アクセサリの開発をサポートするプラットフォームを提供するために、種々のシステム、方法、およびコンピューター読み取り可能命令を開示する。プロセッサー間通信をサポートするのに必要なICピンの数を制限するために、単純なシリアル・インターフェースを用いるとよい。即ち、できるだけ多くの市販のCPU部品との共通インターフェースを設け、必要なデーター・トラフィックをサポートするために、シリアル・ペリフェラル・インターフェース(SPI)に基づく設計を実現するとよい。]
[0052] SPIは、マスター・デバイスとスレーブ・デバイスとの間におけるデーターのシリアル交換を可能にするインターフェースである。SPIは、通例、同期プロトコルを用い、送信および受信は、マスター・マイクロコントローラーが発生するクロック信号によって誘導される。SPIインターフェースは、数台のSPIデバイスの接続を可能にし、一方マスターは、CS(チップ選択)信号によって各デバイスを選択する。
SPIは、通例、4本の信号ワイヤを備えている。
マスター出力スレーブ入力(MOSI)
マスター入力スレーブ出力(MISO)
シリアル・クロック(SCLKまたはSCK)
チップ選択(SC)]
[0053] SPIは、同期シリアル・データー・リンクの標準である。デバイスは、マスター/スレーブ・モードで通信し、マスター・デバイスがデーター・フレームを開始する。複数のスレーブ・デバイスは、個別のチップ選択線を有することが許される。]
[0054] 各SPIクロック・サイクルの間、全二重データー送信が行われ、その中で、マスターはMOSI線において1ビットを送り、スレーブはそのビットをその同じ線から読み取り、このスレーブは1ビットをMISO線において送り、マスターはそれをその同じ線から読み取る。送信には、通例、8ビットというような、所与のワード・サイズのシフト・レジスタを2つ伴い、1つがマスター内に、そしてもう1つがスレーブ内にある。これらのシフト・レジスタは、環状に接続されている。データーは、通例、最上位ビットが最初に押し出され、一方新たな最下位ビットが同じレジスタ内に押し込まれる。レジスタから押し出した後、マスターおよびスレーブは、レジスタ値を交換したことになる。次いで、必要に応じて、このプロセスを繰り返すことができる。]
[0055] この開示の例示的な非限定的形態の1つでは、スマート・トランシーバー・デバイスを設けて、ゲーム・プラットフォームに合わせた新たなワイヤレス・アクセサリの迅速な開発をサポートすることができる。一実施形態では、スマート・トランシーバーは、物理およびリンク・ワイヤレス通信レイヤの受信および送信機能を備えることができる。即ち、ワイヤレス・プロトコル・スタックのPHYおよびリンク・レイヤ、ならびにこのようなデバイスに合わせたワイヤレス・プロトコル機能を、ワイヤレス・アプリケーション特有集積回路(ASIC)に実装することができる。一実施形態では、スマート・トランシーバーがSPIバスのスレーブとなることができ、マスター制御アプリケーションがSPIバスのマスターとなることができる。]
[0056] 一実施形態では、ワイヤレス通信は、ワイヤレス・アクセサリ毎に時分割多元接続(TDMA)無線時間を付与する、周波数ホッピング・ディジタル無線プロトコルを用いて提供することができる。無免許の世界規模2.4GHz工業化学医療(ISM)無線帯域を利用することができる。世界規模の規制要件に準拠する完全な周波数ホッピング・スペクトル拡散(FHSS)2.4GHzISM帯域ディジタル無線トランシーバーを実現するために必要な外部コンポーネントは、最小限で済ますことができる。]
[0057] 標準的なSPIインターフェースの欠点は、データー転送が一度に8ビットに制限されていることである。多くの用途ではそれよりも高いコマンドおよびデーター転送能力を必要とすることがあり得るので、シリアル・インターフェースの利点を残しつつも、一層高いレベルのプロトコルが求められている。全二重データー転送によるSPIバスを通じた効率的な制御/データー伝達方法を考慮して、種々の実施形態では、フレームに基づくSPIプロトコルを開示する。これは、制御およびデーター転送をスマート・トランシーバー・デバイスに対して双方向に行うために用いることができる。即ち、このプロトコル、コマンド、および応答に合わせたフォーマット例を開示する。一実施形態では、各フレームは、ペイロード長が可変の、2バイトのヘッダーを含むことができる。ヘッダーは、2つの部分、即ち、コマンド・バイトおよび長サーバーイトを備えることができる。ペイロードの長さは、個々のコマンドによって異なってもよく、最も長いパケットは、転送の長さを定めることができる。図4は、典型的なデーター転送の例示的な図を示す。] 図4
[0058] 開示するプロトコルは、全二重インターフェースを備えているので、あるデバイスが転送する情報を有していない場合、そのデバイスはアイドル・コマンドを送ることができる。開示するプロトコルは、マスター/スレーブ構造を維持することができ、マスター制御アプリケーションが通例全てのトランザクションを制御し、マスター制御アプリケーションが送信する用意ができているメッセージを有するときにはいつもで、データーを転送する。スマート・トランシーバーは、スレーブ・デバイスとして機能する(act)ことができ、回答を返送することができる。回答は、要求の結果、コマンドに対する遵守、または以前の要求からのイベントの発生の指示を示す。スマート・トランシーバーは、更に、マスター制御アプリケーションに割り込みを発生し、マスターがメッセージを読む準備ができていることを示すことができる。]
[0059] 開示するプロトコルは、更に、フレーム・トランザクションに適用する以下の規則も備えることができる。第1に、チップ選択は、アクティブ状態にあることができる。第2に、ヘッダーは常にリンクの両端において最初に送信することができる。一方の端部が送信すべき有効なメッセージを有していない場合、コマンド・フィールドを0x00に設定することができる。第3に、転送の長さを定めるために、最も長いフレーム(マスターからスレーブに、またはスレーブからマスターに)を用いることができる。第4に、一方側が1つよりも多い送るべきパケットを有する場合、同じフレームの中に、独立したメッセージを一緒に添付することができる。]
[0060] 以下の表に表した事例は、全て例示的な有効転送である。]
[0061] 図5から図11は、上の表において概要を示した想定場面についてのバス転送を示すタイミング図の例である。図5は、マスターが送信するデーターを有し、スレーブが送信するコマンドを有するがデーターを有していない場合を示す。図6は、マスターが送信するコマンドを有するがデーターを有しておらず、スレーブは送信するデーターを有していない場合を示す。図7は、マスターが送信するデーターを有し、スレーブも送信するデーターを有する場合を示す。図8は、マスターが送信するコマンドを有するがデーターを有しておらず、スレーブがデーターを有する場合を示す。図9は、マスターが複数のデーター・パケットを有し、スレーブも複数のデーター・パケットを有する場合を示す。図10は、マスターが多数のデーター・パケットを有し、スレーブが送信する1つのデーター・パケットを有する場合を示す。最後に、図11は、マスターが送信するデーターを有しておらず、スレーブが複数のデーター・パケットを有する場合を示す。] 図10 図11 図5 図6 図7 図8 図9
[0062] フレーム・ヘッダーの後には、ガード・タイムを不要とすることもできる。CS#のローからハイへの遷移を、フレーム同期に用いることができる。SPI多重スレーブ・アプリケーションをサポートするために、データー転送を終了した後(CS#によってトリガされる)、MISOパッドを三状態(tristate)に設定することができる。データー・バイトは、長サーバーイトによって定められたデーター・バイト数が送信された後「ドント・ケア」に設定することができる。]
[0063] 一実施形態では、スマート・トランシーバーの機能は、起動時に選択することができる。スマート・トランシーバーの機能は、所望の用途に応じて異なってもよい。更に、機能は、スマート・トランシーバーを用いる製品の種類によっても異なる場合もある。例えば、音声専用デバイスにおいてICが用いられている場合、ICは、その製品がゲーム・コントローラー・デバイスである場合とは異なる動作をすることもあり得る。SPIコマンド構造は、スマート・トランシーバーのコンフィギュレーションを設定する対象となる用途の種類に応じて変更することもできる。]
[0064] スマート・トランシーバー・デバイスは、4つまでのデーターおよび音声アクセサリ、あるいは4つのデーター専用および4音声専用アクセサリ、あるいはこれらの間における任意の組み合わせを同時にサポートするように設計することができる。スマート・トランシーバーは、ワイヤレス・アクセサリに実装する場合、ワイヤレス・ビデオ・ゲーム・コンソールまたはワイヤレス対応パーソナル・コンピューター、あるいは同様のスマート・トランシーバーを装備しているその他の計算機と通信することができる。]
[0065] スマート・トランシーバーは、種々の製品コンフィギュレーションをサポートするために用いることができるプラットフォームとするとよい。スマート・トランシーバー内にあるファームウェアは、チップのハードウェアを変更することなく、種々の製品バージョンをサポートするように調節することができる。ビデオ・ゲーム・システムでは、スマート・トランシーバーは、ビデオ・コンソール製品、ゲーム・コントローラー製品、および種々のペリフェラル製品をサポートするために用いることができる。]
[0066] 図12は、スマート・トランシーバーの一実施形態における起動シグナリングおよびメッセージングの一例を示す図である。この図を参照すると、スマート・トランシーバーは、スマート・トランシーバー起動メッセージを送ることができる(610)。次いで、マスター制御アプリケーションが起動コンフィギュレーション・メッセージ615をスマート・トランシーバーに送ることができる。起動コンフィギュレーション・メッセージは、スマート・トランシーバーに、概略的な設定に関する情報を提供することができる。概略的な設定には、用いられるSPIプロトコル、必要とされる出力クロック、EEPROMストレージの種類、およびマスター制御アプリケーションによって用いられるEEPROMの長さが含まれる。] 図12
[0067] スマート・トランシーバーは、起動コンフィギュレーション応答によって応答することができる(620)。マスター制御アプリケーションは、EEPROMデーターを検索してアプリケーションのコンフィギュレーションを得るためのコマンドを送ることができる(625)。送信されると、マスター制御アプリケーションはこのコマンドを送り、スマート・トランシーバー630からの応答を待つことができる。]
[0068] マスター制御アプリケーションは、アプリケーション・コンフィギュレーション・コマンド635を送ることができる。アプリケーション・コンフィギュレーション・コマンドは、スマート・トランシーバー・チップを、マスター制御アプリケーションが必要とするモードに設定することができる。スマート・トランシーバーは、アプリケーション・コンフィギュレーション応答で応答することができる(640)。]
[0069] マスター制御アプリケーションは、アプリケーションをアクティブに設定するコマンドを送ることができる(645)。スマート・トランシーバーは、次いで、「アプリケーション・アクティブ」の現行モードで応答することができる(650)。]
[0070] コンフィギュレーション・スタンバイ状態では、限られたSPIコマンドしかマスター制御アプリケーションに許可されないようにするとよい。通例、スマート・トランシーバーは、この時点において任意の機能を実行するのに十分な情報を有しておらず、マスター制御アプリケーションにもっと多くのデーターを供給することを要求する。通例、この状態において許可することができるコマンドは、モード制御(即ち、給電、リセット)および起動コンフィギュレーション・メッセージングだけである。]
[0071] アプリケーション未定状態(pre-application state)には、マスター制御アプリケーションが有効な起動コンフィギュレーション・メッセージを送った後に入ることができる。この状態は、より多くのSPIコマンドを許可することができるが、アプリケーションが確定していないので、個数を制限するとよい。許可されるコマンドの主要な機能は、通例、コンフィギュレーション読み出し、コンフィギュレーション設定、およびモード制御である。スマート・トランシーバーは、マスター制御アプリケーションがそれを別の状態に変えるまで、この状態に残留することができる。]
[0072] アプリケーション・スタンバイ状態には、マスター制御アプリケーションがアプリケーション・コンフィギュレーションを設定した後に入ることができる。通例、アプリケーションは、マスター制御アプリケーションが状態をアクティブに設定するまで開始しない。]
[0073] アプリケーション・アクティブ状態には、マスター制御アプリケーションがモードをアクティブに設定した後に、アプリケーション・スタンバイ状態から入ることができる。アプリケーション・アクティブ状態は、通例、デバイスの正常動作モードである。マスター制御アプリケーションは、アプリケーションによって許可されたコマンドを発行し続けることができる。]
[0074] 以下に、スマート・トランシーバーの機能をサポートするメッセージ・リストの一例を示す。コマンドは、2つの集合に分けて示す。第1の集合は、アプリケーションに独立することができるコマンドである。第2の集合は、アプリケーション特有コマンドの例を示す。通例、これらのコマンド集合は、もっと大きな完全なコマンド集合の部分集合である場合もある。]
[0075] 以下の表は、アプリケーションとは独立したコマンドの例をリストにして示す。コマンドの詳細(具体的なフォーマットおよびフィールドの意味)については、補足資料Aにおいて規定する。]
[0076] ゲームパッド・アプリケーションは、ゲームパッド・ハンドリング(gamepad handling)と関連のあるワイヤレス・プロトコルを用いることができる。ゲームパッド・アプリケーションの音声部は、ゲームパッド規則を用いて、音声チャネルを取得することができる。以下の表は、ゲームパッド・アプリケーションが用いることができるSPIメッセージを示す。]
[0077] 音声デバイス・アプリケーションは、音声デバイスと関連のあるワイヤレス・プロトコルを用いることができる。ワイヤレス・アプリケーションの音声部は、音声規則を用いて、音声チャネルを取得することができる。以下の表は、音声アプリケーションが用いるSPIメッセージの一例を示す。




アプリケーション・プログラミング・インターフェース(API)]
[0078] 次に、APIについて説明する。一実施形態では、スレーブ・デバイスは、アプリケーション・プロセッサー(AP)と、ワイヤレス・プロトコル・プロセッサーとしてのスマート・トランシーバーとで構成することができる。APIは、アプリケーション・プロセッサーの中に配置することができる。これら2つのプロセッサーは、シリアル・ペリフェラル・インターフェース(SPI)によって接続することができる。]
[0079] 図13に示すように、実際のハードウェアおよびソフトウェア環境とは独立してサービスを提供することもできるが、一実施形態では、APIが、別個のアプリケーション・プロセッサー(マスター制御アプリケーション・プロセッサー)がシリアル・インターフェースを通じてスマート・トランシーバーと通信することを保証することができる。更に、別の実施形態では、APIは、包括的GPIOアプリケーションによって用いることもできる。] 図13
[0080] 一実施形態では、APIは、物理無線チャネルへのアクセスおよびスマート・トランシーバー・ピンへのアクセスを扱うことができる。更に、APIは以下のタスクも担当することができる。
1.SPIドライバを用いた、SPIを通じたスマート・トランシーバーとの通信。
2.スマート・トランシーバーの設定の簡略化。
3.アプリケーションとスマート・トランシーバーとの間における電力モードおよび機能状態の同期化。
4.アプリケーションのワイヤレス・データーおよび音声送信機能に対するフレームワークの提供。
5.アプリケーションのスマート・トランシーバーとの通信のデバッグのサポート。]
[0081] APIサービスには5つのグループを考慮することができる。
1.ワイヤレス・リンクを通じて固定サイズのデーター・パケットを送信および受信するデーター・サービス。
2.ワイヤレス・リンクを通じて音声パケットを送信および受信する音声サービス。このサービスの等時性をサポートするため、そして音声サンプルの符号化および復号をサポートするために特殊なメカニズムを含むこともできる。
3.他のサービスのパラメータを構成するためのレイヤ管理サービス。
4.スマート・トランシーバーの何らかの予備ピンにおいてビット指向IOを実行するためのGPIOサービス。
5.スマート・トランシーバー生産検査インターフェースへのアクセスをアプリケーションに与えるための生産検査サービス。]
[0082] データー通信サービスは、図14に例示するようなサービス・プリミティブ(service primitives)に関して定めることができる。サービス・プリミティブとは、サービス提供レイヤと任意のサービス・ユーザ(タスク、レイヤ等)との間における抽象的な相互作用である。したがって、これは、ソフトウェア実現例の詳細とは独立していることができる。サービスは、目標システムに合わせて、適宜関数コールまたはオペレーティング・システムのメッセージとして実現することができる。] 図14
[0083] 図15に示すように、情報ベース(IB)はAPIパラメータおよびコンフィギュレーション値を収蔵することができる。サービス・プリミティブは、4つの包括的タイプのうちの1つとすることができる。
・要求:要求プリミティブは、サービスをAPIによって開始することを要求するためにレイヤを用いてサービスから下方に受け渡すことができる。
・指示:指示プリミティブは、APIから上方に受け渡すことができる。このイベントは、論理的にリモート・サービス要求と関係付けることができ、あるいは内部APIイベントによって起こる場合もある。
・確認:確認プリミティブは、APIからアプリケーション/ネットワーク・レイヤに受け渡し、1つ以上の関連する以前のサービス要求の結果を伝えることができる。
・応答:応答プリミティブは、サービス使用レイヤからAPIに受け渡し、指示プリミティブによって以前に呼び出された手順を完了することができる。] 図15
[0084] 以下の取り決めをプリミティブに用いることができる。<プリミティブ名><プリミティブ・タイプ>。<プリミティブ・タイプ>は、要求、指示、確認、または応答のうちの1つとすることができる。]
[0085] サービス・プリミティブは、以下の機能を設けることができる。
...Data...: 種々の固定サイズを有するデーター・パケットの送信。
...Connect...: 接続の確立
...Disconnect...: 接続の解放]
[0086] 上流データー・サービスのパケット・タイプのリストの一例を以下に示す。全てのタイプは任意のシーケンスで用いることができる。最大上流スループットは、フレーム当たり48バイト(これに、16ビットまでがヘッダーに追加される)として与えることができる。フレーム期間は、8msとすることができる。総合要求スループットは、通例、この最大値を超過しない。純粋なワイヤレス音声デバイス(例えば、ヘッドセット)では、...DATA_VOICE...パケット・タイプを用いることができる。]
[0087] 殆どの上流パケット・タイプおよび対応するデーター(サブ−)サービスは、無線リンクにおいてはパケット整列もフロー制御も全く提供しない。これらのデーター・パケットは、再書き込み可能であると想定されている。再書き込み可能なパケットが、実現可能なスループットによって許容されるよりも速く送られると、後に送られるパケットが、先に送られたパケットを上書きする可能性がある。再書き込み可能パケットは、通例、何らかの状態情報を周期的に送信するために用いられる。]
[0088] 下流データー・サービスのパケット・タイプのリストの一例を以下に示す。全てのタイプは任意のシーケンスで用いることができる。最大下流スループットは、フレーム当たり8バイト(これに、16ビットまでがヘッダーに追加される)として与えることができる。フレーム期間は、8msとすることができる。総合下流スループットは、通例、この最大値を超過しない。純粋なワイヤレス音声デバイス(例えば、ヘッドセット)では、...DATA_VOICE...パケット・タイプを用いることができる。]
[0089] 音声サービスでは、サービス・プリミティブは以下の機能を設ける。
...TxRx...:PCM音声パケットの送信タイミングを示す。実際の音声パケットは、特殊機能GetVoiceBufferによって交換される。
...Connect...: 接続の確立
...Disconnect...: 接続の解放
...SampleRate...:上流サンプル・レートの変更を示す。]
[0090] PCMデーターは、したがって、スマート・トランシーバーによって、スループット制約を満たすように符号化することができる。PCM音声サンプルは、サンプル当たり16ビットで送信することができる(左揃え、2の補数、リトル・エンディアン・フォーマット)。]
[0091] サンプル・レートは、いつでもマスター・デバイスによって変更することができる。サンプル・レートの指示を与えると、この場合では、オーディオ・ハンドラーにAD変換パラメータをしかるべく変更するきっかけとなることができる。]
[0092] 上流音声パケット・サイズ(属性IB_VOICE_PACKET_SIZE)および初期上流符号化タイプ(属性IB_UPSTREAM_VOICE_ENCODING_TYPE)は、IBヘッダー・ファイルにおいて設定することができる。]
[0093] 管理サービスは、データーや音声送信サービスには直接関係しないプリミティブ、およびレイヤ・コンフィギュレーションを情報ベース(IB)を通じて組み合わせることができる。典型的なアプリケーション環境では、IB属性は固定値を有し、アプリケーション実行の最中に変更する必要はない。]
[0094] 管理サービス・プリミティブは、以下の機能を設けることができる。
...Init...:APIソフトウェア初期化。
...Start...:スマート・トランシーバーとの通信の開始。
...Reset...:APIおよびスマート・トランシーバーのリセット。
...PowerDown...:スマート・トランシーバーの電源遮断。
...Bind...:マスター/スレーブ・バインディング(接続のためには欠くことができないが、必要とされるのは1回だけである)。
...StopBind...: バインディングの停止。
...Read...: スマート・トランシーバーのEEPROMの読み出し。
...Write...: スマート・トランシーバーのEEPROMの書き込み。]
[0095] また、IB属性は、更なる拡張のためのオプションとして、対応するプリミティブ(ゲットおよびセット(get and set))によってアクセスすることもできる。すると、IBアクセス・プリミティブは別個の確認プリミティブを有することができる。何故なら、殆どの場合、スマート・トランシーバーとの通信が関与するからである。]
[0096] スマート・トランシーバーは、予備のGPIOピンを有することができ、これらは入力または出力のいずれにも用いることができる。コンフィギュレーション設定は、IB属性を通じて行うことができる。]
[0097] サービス・プリミティブは、16IOピンまでセットまたはクリアすることができ、あるいは16IOピンまでの現在の状態を、要求に応じて(確認プリミティブによって)または要請なしに(指示プリミティブによって)伝えることができる。]
[0098] 図16は、APIプロトコルの一実施形態について、簡略化した状態遷移図を示す。API状態は、次のように定めることができる。
INITIALIZED(初期化済み):APIを用いる準備ができている。
STARTED(開始):スマート・トランシーバーとの通信が確立され、構成されている。
CONNECTED(接続):データーおよび/または音声接続が確立され、データーおよび/または音声を送るまたは受信することができる。状態図を簡略化するために、音声接続状態および遷移は示されていないが、別個の独立したインスタンスとして存在することができる。
BINDING(結束):これは、マスター・デバイスに結束する間における過渡的状態である。通常では、CONNECTED状態に到達するためにだけ結束を行う必要はない。スレーブ・デバイスの寿命の間に1回だけしか起こらない可能性が高い。] 図16
[0099] APIの基本的構造の一例を図17に示す。図に示すのは、状態機械であり、アプリケーションによる要求を扱い、スマート・トランシーバーによって受信されたSPIメッセージおよび内部状態に応じてアプリケーションに対してイベントを発生することができる。マスター制御アプリケーション・コントローラーとスマート・トランシーバーとの間でデーターおよび音声を転送するためのバッファ機能を、APIに統合することもできる。アプリケーション・レイヤは、要求を送出するために、プリミティブ関数コールに関して、APIと通信することができる。加えて、一実施形態では、APIからのイベント・メッセージを扱うために、2つの関数GetEvent(...)およびReadEventDetails(...)がある。音声の扱いには、2つの関数PutVoiceBuffer(...)およびGetVoiceBuffer(...)を実装することができる。SPIドライバは、APIバッファを処理するための4つの関数を用いて、APIにインターフェースすることができる。] 図17
[0100] 要求には2つのタイプを考えることができる。
1.対応する確認を有さないかもしれない要求。要求された動作の成果は、通例、関数コールの戻りの後でなければ分からない。
2.対応する確認を有する可能性がある要求。これらのタイプの要求には、動作を扱うために2つの異なる方法、同期および非同期があるとよい。同期実現例では、関数コールの成果は、当該関数コールの戻りの後でないと分からないが、関数は確認を待つことができ、関数が戻るまでコール・タスクを阻止することができる。対照的に、非同期の実現例は、直ちに戻る関数コールを有することができるが、動作の成果を別個に処理することができる。]
[0101] 指示および確認は、アプリケーションによってイベント(イベント識別子、および受信したプリミティブ・エレメントに対するポインタのリスト)として受信することができる。関数コールは、イベントを取込、イベントの詳細を読み取るために利用できる場合がある。音声処理タスクを最適化するために、音声サンプルのバッファ管理は、イベントの代わりに、別個の関数コールによって扱うとよい。基礎となるオペレーティング・システムでは、これは、タスクまたはスレッドによって受信されるメッセージによって実現することができる。]
[0102] 指示および確認の受信にイベント・ループを有する代わりに、コール・バック機能をAPIに登録することもできる。各指示または確認が受信されると、対応する関数をコールすることができる。]
[0103] 以下の表は、ユーザおよびサード・パーティのアプリケーションに利用可能なSPIコマンドを、本明細書において論じているプリミティブと相互引用したものである。1つのプリミティブが1回よりも多くリストに現れる場合、プリミティブ・パラメータ(例えば、Xair_MdDataReq)または内部ドライバ状態(例えば、Xair_MmStartReq)にしたがって該当するコマンドを選択する。FFSという印が付いているコマンドは、現在本明細書には含まれていないが、望ましければ追加することができる。]
[0104] 補足資料Bは、APIサービスによって提供される種々の機能の詳細を示す。]
[0105] 最後に、本開示は、種々の図に示したような好ましい形態に関して説明したが、他の同様の形態も用いることができ、本開示から逸脱せずに、本開示の同じ機能を実行するために、変更や追加を、記載した形態に行ってもよいことは言うまでもない。例えば、本開示の種々の形態では、プロトコルおよびAPIを開示した。しかしながら、これらの記載した形態と等価の別のメカニズムも、本開示における教示によって想起される。したがって、本開示はいずれの1つの形態にも限定されず、むしろ添付した特許請求の範囲にしたがって広さおよび範囲を解釈するものとする。
補足資料A
スマート・トランシーバー起動メッセージ]
[0106] スマート・トランシーバーが最初に起動して、SPIモードが検出され、SPI転送の準備ができている場合、起動メッセージをSPI出力FIFOにロードし、「D_AVAIL#」ラインをアサートすることができる。このメッセージは、通例、コンフィギュレーション・メッセージとして用いられ、マスター制御アプリケーションに、チップのタイプおよびそのコンフィギュレーションを知らせる。スマート・トランシーバーが自動的にこのメッセージを起動時に送ることができるが、マスター制御アプリケーションは、スマート・トランシーバー起動メッセージ要求を用いて、いつでもそれを要求することができる。
スマート・トランシーバーからマスター制御アプリケーション




マスター制御アプリケーションからマスター・トランシーバー




起動コンフィギュレーション]
[0107] マスター制御アプリケーションがスマート・トランシーバー起動メッセージを受信した後、起動コンフィギュレーション・メッセージをスマート・トランシーバー・チップに送ることができる。このメッセージは、スマート・トランシーバーに、それが用いているSPIプロトコル・バージョンは何かと、それが望む出力クロック速度とを知らせることができる。応答メッセージは、デバッギング・チェックのために送られたコンフィギュレーション・データーを収蔵することができる。長さが0のコマンド(ペイロードがない)をマスター制御アプリケーションが送ることによって、現在の起動コンフィギュレーションをポールすることができる。
マスター制御アプリケーションからスマート・トランシーバー




スマート・トランシーバーからマスター制御アプリケーション]
[0108] 応答は、起動コマンドが正しく受信されたときにその確認として、起動コマンドと共に送られたデーターを収蔵することに注意すること。]
[0109] SPIドライバが用いるSPIプロトコルのバージョンが、チップがサポートするバージョンとは異なる場合、チップは、要求されたバージョンではなく、それがサポートするバージョンを返すことができる。チップが動作することができるバージョンを用いるのは、ドライバの責務である。
モード制御]
[0110] マスター制御アプリケーションは、スマート・トランシーバーの動作に対して究極的な制御を行う。モード・コマンドは、マスター制御アプリケーションが、スマート・トランシーバーのモードを変更することを可能にする。異なるリセット・モードは、既知の状態から開始できるように、スマート・トランシーバー・チップをリセットする。電力モードは、スマート・トランシーバーの電源を切るか、またはそれを別の電力モードにする。モード変更メッセージは、モード変更が行われる前に、スマート・トランシーバーによって承認することができる。]
[0111] モード制御ポールは、マスター制御アプリケーションに対するキープ・アライブ」メッセージを、スマート・トランシーバーが未だ異なるモードで正しく動作していると判断するため用いるための、正しい選択肢である。
マスター制御アプリケーションからスマート・トランシーバー]
[0112] マスター制御アプリケーションは、このコマンドをスマート・トランシーバーに送って、モードを変更することまたは現行のモードを要求することができる。ノー・レングス(no length)が送られた場合、要求を現モードのポールと見なすことができる。




スマート・トランシーバーからマスター制御アプリケーション]
[0113] モード制御応答メッセージは、SPIインターフェースにおいて、モード制御要求の受信の1m秒以内に得ることができる。
メッセージ・バッファ警告]
[0114] 通例、マスター制御アプリケーションは、スマート・トランシーバーが扱うことができない程速くメッセージを送ることはできない。しかしながら、スマート・トランシーバー・バッファが埋まり始めた場合、エラー・メッセージが定められる。バッファが殆ど満杯になったことをマスター制御アプリケーションに警告するためのメッセージが1つある。バッファ・タイプについての警告を解消するための別のメッセージがある。加えて、最後のメッセージが拒否されたことをスマート・トランシーバーがマスター制御アプリケーションに通知するためのメッセージがある。拒否メッセージは、マスター制御アプリケーションがバッファ警告を無視し、そのバッファにデーターをあらゆる方法で送ったときにのみ送られ、あるいは現在のアプリケーションまたは状態にとってメッセージが間違っているときに送られる。
スマート・トランシーバーからマスター制御アプリケーションへのバッファ警告]
[0115] このメッセージは、1つまたは複数のバッファが殆どいっぱいになったときにスマート・トランシーバーによって送ることができる。スマート・トランシーバーのファームウェアは、少なくとも1つ以上のメッセージ(現在受信中のものは含まない)の余裕が未だあるときに警告を送ることができるように書き込むことができる。このメッセージが送られるといつでも、警告ステータスにある全てのバッファの完全なリストを送ることができる。マスター制御アプリケーションがバッファ警告を受け取ると、この警告が解消されるまで、そのタイプのバッファをもはや送ってはならない。




スマート・トランシーバーからマスター制御アプリケーションへのバッファ警告の解消]
[0116] このメッセージは、警告中のバッファが十分に消去されてより多くのメッセージが許容されるようになったときに送ることができる。ペイロードは、消去されているバッファ・タイプの各々をリストに纏めることができる。これは、以前に警告タイプが設定されたことがあり、今では書き込んでも安全なバッファだけをリストに纏めることができる。




スマート・トランシーバーからマスター制御アプリーションへのメッセージ不達(message fail)]
[0117] マスター制御アプリケーションの符号化(coding)が正しければ、このメッセージが送られることはないはずであるが、マスター制御アプリケーションがバッファ警告メッセージを無視し、スマート・トランシーバーが受け入れることができないバッファを送った場合、または現在のアプリケーションまたは状態にはメッセージが誤りである場合には、このメッセージが送られることがある。




EEPROMコマンド]
[0118] マスター制御アプリケーションは、データーをEEPROMに書き込むこと、またはデーターをEEPROMから読み出すことを要求することができる。メッセージは、32バイトのデーターに制限されており、一度に1つのメッセージしか保留していることができない(1つのEEPROM読み出しまたは1つの書き込みメッセージ)。
EEPROM読み出し]
[0119] マスター制御アプリケーションは、EEPROMからのデーターを要求することができる。これは、読み出し要求によって行われる。その後のある時点で、スマート・トランシーバー・チップがEEPROMを読み出し終えたとき、EEPROM読み出し応答メッセージと共にこのデーターをSPIを通じて戻すことができる。双方のメッセージは、EEPROMオフセットおよび読み出し長を収蔵しており、これによって、マスター制御アプリケーションは、その保留中の読み出し要求を応答と同期させることが可能になる。エラーがある場合、スマート・トランシーバーは、EEPROMデーターを読み出さずに、要求を返すことができる。このメッセージングによって、マスター制御アプリケーションのプロセッサーは、返送すべきメッセージにコンテキストを入れることが可能になる。これは、マスター制御アプリケーション・プロセッサーが望む任意の方法で用いることができる。例えば、これは、応答メッセージが受信されるときに再開するタスク番号とすることができる。
マスター制御アプリケーションからスマート・トランシーバーへのEEPROM読み出し要求




スマート・トランシーバーからマスター制御アプリケーションへのEEPROM読み出し応答




EEPROM書き込み]
[0120] マスター制御アプリケーションは、不揮発性データーをEEPROMにセーブすることができる。これは、書き込み要求によって行われる。その後のある時点で、スマート・トランシーバー・チップがEEPROMにデーターを書き込みその妥当性を判断した後、SPIチャネルを通じて応答メッセージを返送して、マスター制御アプリケーションに、それが行われたことを知らせることができる。双方のメッセージは、EEPROMオフセットおよび読み出した長さを収蔵しており、マスター制御アプリケーションは、その保留中の書き込み要求を応答と同期させることが可能になる。エラーがある場合、スマート・トランシーバーはエラー・ステータスと共に要求を戻すことができる。このメッセージングによって、マスター制御アプリケーション・プロセッサーは、返送すべきメッセージにコンテキストを入れることが可能になる。これは、マスター制御アプリケーション・プロセッサーが望む任意の方法で用いることができる。例えば、これは、応答メッセージが受信されるときに再開するタスク番号とすることができる。書き込まれたデーターは、応答の中で戻すことができるので、マスター制御アプリケーションは、正しいデーターが書き込まれたことを検証することができる。
マスター制御アプリケーションからスマート・トランシーバーへのEEPROM書き込み要求




スマート・トランシーバーからマスター制御アプリケーションへのEEPROM書き込み応答]
[0121] スマート・トランシーバーのファームウェアには、現在の音声タイプがわかると良い2つの部分がある。
1.リンク・レイヤは、どのタイプのデーターが上流に送られているのか知らなければならない場合がある。
2.スマート・トランシーバーのハードウェアが音声符号化/復号を行う場合、アプリケーションは符号化に用いるコーディング・タイプ(coding type)がわかるとよい。]
[0122] このコメントが送信されると、スマート・トランシーバーは、必要であれば、上流経路のHW符号化タイプを変更し、更に、上流音声データーにこのタイプを添付する(tag)ことができる。ペイロードなしでこのコマンドを送った場合、スマート・トランシーバーは現在のタイプを送ることができる。
マスター制御アプリケーションからスマート・トランシーバーへの音声符号化タイプ設定




スマート・トランシーバーからマスター制御アプリケーションへの音声符号化タイプ応答




GPIO制御]
[0123] スマート・トランシーバーのICは、予備のGPIOピンを有しており、これらのピンはマスター制御アプリケーション・チップが入力または出力のために用いることができる。スマート・トランシーバーの初期化の時点において、予備用GPIOの全てを入力として構成することができ、それらのステータスは、スマート・トランシーバー起動メッセージの一部として送ることができる。メッセージによって、マスター制御アプリケーションはGPIOを構成すること、そしてGPIOに対して読み出しまたは書き込みを行うことが可能になる。入力を構成する場合、マスター制御アプリケーションは、要求された入力が変化したときはいつでも、GPIOステータス・メッセージを送るように要求することができる。これらのメッセージは、整列させて、4m秒以内にマスター制御アプリケーションに送るように準備することができる。GPIOステータス・メッセージは、バッファおよびモード・メッセージよりも優先順位が低い。]
[0124] 全てのGPIOコマンドにおいて、ビット0はGPIO0にマッピングし、ビット1はGPIO1にマッピングする等となる。
マスター制御アプリケーションからスマート・トランスレートシーバへのGPIO設定]
[0125] マスター制御アプリケーションがスマート・トランシーバーのGPIOを用いたい場合、これらを正しく設定しなければならない。入力および出力を決定するために、別個のビット・マップがある。




スマート・トランシーバーからマスター制御アプリケーションへのGPIO設定応答




マスター制御アプリケーションからマスター・トランシーバーへのGPIO読み出し/書き込み




スマート・トランシーバーからマスター制御アプリケーションへのGPIOステータス/応答




ワイヤレス・フレーム同期]
[0126] アプリケーションは、フレーム同期メッセージをフレームにおける任意の位置になるように設定することができる。デフォルトでは、フレーム同期メッセージをオフにすることができる。イネーブルされると、フレーム同期メッセージをSPIバッファにロードし、フレーム・ビット・クロックがトリガ値に達したときに、準備を整えることができる。
マスター制御アプリケーションからスマート・トランシーバーへのフレーム同期設定要求




スマート・トランシーバーからマスター制御アプリケーションへのフレーム同期設定応答




スマート・トランシーバーからマスター制御アプリケーションへのフレーム同期メッセージ




ワイヤレス音声同期]
[0127] SPIポートを通過する際のスループットを向上させるために、上流および下流の音声データーを同期させて、双方のパケット・タイプが同時に全二重接続を通じて転送されるようにすることが可能である。]
[0128] 音声同期設定要求メッセージは、この機構(feature)をイネーブルするために用いることができる。
マスター制御アプリケーションからスマート・トランシーバーへの音声同期設定要求]
[0129] デフォルトでは、このメッセージをイネーブルすると、フレーム同期メッセージをディスエーブルすることができる。このメッセージをディスエーブルすると、フレーム同期メッセージをイネーブルすることができる。




スマート・トランシーバーからマスター制御アプリケーションへの音声同期設定応答




スマート・トランシーバーからマスター制御アプリケーションへの音声同期メッセージ]
[0130] マスター制御アプリケーションは、このメッセージを用いて、SPIインターフェースを通る全二重トランスポートを開始することができる。




コンフィギュレーション・メッセージング]
[0131] コンフィギュレーション・メッセージは、マスター制御アプリケーションがスマート・トランシーバー・チップを、その特定のオプションを有する正しいアプリケーションに設定することを可能にする。
アプリケーションおよびオプションの設定]
[0132] このメカニズムは、マスター制御アプリケーションが正しいアプリケーションおよびそのための種々のオプションを選択することを可能にする。
マスター制御アプリケーションからスマート・トランシーバー・アプリケーションへのコンフィギュレーション設定−サード・パーティ]
[0133] 無効のオプション・フラグまたは音声パケット・サイズ・フィールドがスマート・トランシーバーによって検出された場合、有効なアプリケーション・コンフィギュレーション・コマンドを受信するまで、アプリケーション未定状態にい続ければよい。
ホスト接続]
[0134] 一旦マスター制御アプリケーションの準備が整うと、ホストへの接続開始を試すことができる。ゲームパッド・アプリケーションでは、データー接続を最初に確立することができ、一旦これが行われると、ヘッドセットが差し込まれていれば、音声接続の確立を試すことができる。一旦接続が確立されると、次の3つの異なるインスタンス(instance)のために、これらを落とす(drop)ことができる。
1.マスター制御アプリケーションがリンク・ドロップを要求する。この場合、リンクを落とし、無線(radio)をオフに切り換えることができる。マスター制御アプリケーションは、無線をオンに切り替えて新たなリンクを再確立するためには、新たな接続要求を発行することができる。
2.ホストがリンク・ドロップを要求する。この場合、リンクを落とすことができ、無線をオフに切り換えることができる。マスター制御アプリケーションには、接続が落ちたことおよび無線がオフになったことを通知することができる。マスター制御アプリケーションは、無線をオンに切り換えて、新たなリンクを再確立するためには新たな接続要求を発行することができる。
3.ホストとの同期が失われる。この場合、リンクを落とすことができ、無線をオフに切り換えることができる。マスター制御アプリケーションには、接続が落ちたことおよび無線がオフになったことを通知することができる。マスター制御アプリケーションは、無線をオンに切り換えて、新たなリンクを再確立するためには新たな接続要求を発行しなければならない場合がある。
データー接続要求]
[0135] 一旦アプリケーションがアップして実行すると、スマート・トランシーバーにホストに接続するように依頼することができる。スマート・トランシーバー・チップは、プロトコル規則を用いてホストを選択し、ワイヤレス・スロットを選択することができる。接続プロセスが開始すると直ぐに、ホストは接続要求応答を返すことができる。一旦スロットが得られると、接続ステータス報告を送ることができる。マスター制御アプリケーションが接続を落としたい場合、アクション(Action)を「接続を落とす」に設定し、このメッセージを送ることができる。スマート・トランシーバーは接続を落とし、無線をオフに切り換えることができる。「接続ドロップ」応答を返すことができる。加えて、リンク・ステータス・メッセージを、「マスター制御アプリケーション要求毎に落とされたスロット」というリンク・ステータスと共に送り、次いで「無線オフ」のリンク・ステータスを送ることができる。]
[0136] マスター制御アプリケーションは、リンクを獲得したことを示すリンク・ステータス・メッセージを受信する前に、転送すべきいかなるデーターも送ってはならない。そうした場合、データーは流出して(flush)、送られなくなる場合もある。
マスター制御アプリケーションからスマート・トランシーバーへのデーター接続要求]
[0137] このコマンドは初期報告のためのフィールドを含むことを注記しておく。




スマート・トランシーバーからマスター制御アプリケーションへのデーター接続応答




音声接続要求]
[0138] 一旦アプリケーションがアップして実行し、ヘッドセットを差し込んで、データー接続が得られたなら、マスター制御アプリケーションはスマート・トランシーバーに音声接続を依頼することができる。スマート・トランシーバー・チップは、ゲームパッド音声プロトコル規則を用いて、ワイヤレス・スロットを選択することができる。接続プロセスが開始すると直ぐに、ホストは接続要求応答を返送することができる。一旦スロットが得られると、接続ステータス報告を送ることができる。
マスター制御アプリケーションからスマート・トランシーバーへの音声接続要求




スマート・トランシーバーからマスター制御アプリケーションへの音声接続応答




リンク・ステータス]
[0139] マスター制御アプリケーションは、リンク・ステータスを問い合わせたい場合がある。加えて、スマート・トランシーバー・アプリケーションは、リンク・ステータスが変化したときに、メッセージを送りたい場合もある。
音声スロット可用性
マスター制御アプリケーションからスマート・トランシーバーへのリンク・ステータス要求




スマート・トランシーバーからマスター制御アプリケーションへのリンク・ステータス




コントローラー・バッファ転送]
[0140] 一旦アプリケーションがアップして実行し、無線リンクが得られると、転送の殆どは、送るベきデーターおよび受信したデーターのためのバッファ転送となる。プロトコルにおいて定められている各データー・タイプは、それ自体の1組のバッファを有する。上流メッセージにおいて、マスター制御アプリケーションがバッファを送ることができるのは、それらを有するからである。特定のデーター・タイプに対するバッファの割り当てが少ない場合、スマート・トランシーバー・チップは、少ないバッファ・タイプの警告を送ることができる。マスター制御アプリケーションは、「警告クリア」を得るまでは、そのタイプのバッファを1つだけ多くしか送ることができない(同時に転送されている可能性があるものも含む)。実際には、警告が決して発生しないだけの十分なバッファがあると想定する。スマート・トランシーバーがワイヤレス・チャネルからメッセージを受信すると、正しいデーター・タイプ・メッセージを用いてこれらのメッセージをマスター制御アプリケーションに送ることができる。
マスター制御アプリケーションからスマート・トラシーバ(上流)へのバッファ
コントローラー・ヘッダー報告]
[0141] コントローラー・ヘッダー報告は、ワイヤレス・ヘッダーを通じて送られるステータス報告である。これらの一例は、デバイス・タイプ報告である。




コントローラー・データー




コントローラー・トランスポート




包括的報告バッファ]
[0142] このバッファ・タイプは、専用のバッファ・メッセージを有していない全てのバッファ・タイプのためとすることができる。




スマート・トランシーバーからマスター制御アプリケーションへの(下流)バッファ
コントローラー・ヘッダー要求




コントローラー・データー




コントローラー・トランスポート




包括的要求バッファ]
[0143] このバッファ・タイプは、逆のワイヤレス・パケット・タイプまたはサポートされていないワイヤレス・パケット・タイプの全てを扱うことができる。




音声バッファ転送]
[0144] 音声バッファは、規則的に1回のメッセージにおいて送ることができる最も長いデーターとすることができる。全二重バスのより良い使用を許可するために、マスター制御アプリケーションは、音声バッファを小さい断片に分割するように構成することができる。この構成は、起動時にセットすることができ、実行中にはセットすることができない。パケット0は基本タイプと見なすことができ、音声を分割しない場合、それは転送される唯一の音声パケット・タイプとなることができる。マスター制御アプリケーション・プロセッサーは、正しいデーター・タイプを音声ヘッダーに入れることができるように、スマート・トランシーバー・チップに、どのタイプのコーディングが用いられているのか知らせることができる。スマート・トランシーバーが音声符号化を実行している場合、マスター制御アプリケーションが既にセットしてあるタイプを用いることができる。スマート・トランシーバーは、SPIを通じて受信する音声パケットを追跡し、分割パケットが用いられている場合、ワイヤレス・チャネルを通じて完全なバッファが送られる前に全てのパケットが受信されたことを確認する必要がある場合もある。マスター制御アプリケーションは、それがスマート・トランシーバーから受信するデーターに対して、同様の機能を備えなければならない場合もある。
マスター制御アプリケーションからスマート・トランシーバーへの(上流)バッファ
音声ヘッダー報告




音声トランスポート




PCM音声パケット0〜7]
[0145] マスター制御アプリケーションが、音声復号および符号化を備えるように当該アプリケーションを構成した場合、これらのパケット・タイプはバッファを満たすために用いることができる。コンフィギュレーション・オプション「上流音声パケット・カウント」を用いて、どのパケットを送るのか制御することができる。コマンド・コードが異なるパケットを用いて、スマート・トランシーバーが、正しいバッファ位置を指し示すように、そのDMAを設定できるようにすることができる。表43は、PCMパケットに用いられる最大パケット・サイズを示す。]
[0146] 全てのPCMサンプルは、16ビット、2の補数、リトル・エンディアン・フォーマットとすることができる。これが意味するのは、最初のバイトが最初のサンプルのロー・バイトであり、2番目のバイトが最初のサンプルのハイ・バイトである等ということである。加えて、16ビット未満のADCを用いる場合、サンプルを左に揃えるとよい。








スマート・トランシーバーからマスター制御アプリケーション(下流)バッファ
音声ヘッダー要求




音声トランスポート




PCM音声パケット0〜7]
[0147] マスター制御アプリケーションが、音声復号および符号化を備えるように当該アプリケーションを構成した場合、これらのパケット・タイプを送ることができる。コンフィギュレーション・オプション「下流音声パケット・カウント」を用いて、パケットをいくつ送るか制御することができる。表47は、PCMパケットに用いられる最大パケット・サイズを示す。尚、パケットは、マスター制御アプリケーション・プロセッサーに、データーCRCの有効性が確認できたか否か知らせるために、ステータスのために余分なバイトを収蔵することができることを注記しておく。マスター制御アプリケーションがそのためにスマート・トランシーバーを構成した場合、「悪い」データーだけを送ることもできる。








コンフィギュレーション・メッセージング]
[0148] コンフィギュレーション・メッセージは、マスター制御アプリケーションに、スマート・トランシーバー・チップを、その特定のオプションを有する正しいアプリケーションに設定することを可能にする
アプリケーションおよびオプションの設定]
[0149] このメカニズムは、マスター制御アプリケーションが正しいアプリケーションおよびそのための種々のオプションを選択することを可能にする。
マスター制御アプリケーションからスマート・トランシーバー・アプリケーションへのコンフィギュレーション設定−サード・パーティ





スマート・トランシーバーからマスター制御アプリケーションへのアプリケーション・コンフィギュレーション応答




ホスト接続]
[0150] 一旦マスター制御アプリケーションの準備が整うと、ホストへの接続開始を試すことができる。音声デバイス・アプリケーションでは、最初にホストを検索しこれと同期を取り、次いで音声デバイス・プロトコルを用いて音声スロット接続を確立することができる。一旦接続が確立されると、次の3つの異なるインスタンス(instance)のために、これらを落とす(drop)ことができる。
1.マスター制御アプリケーションがリンク・ドロップまたは無線オフを要求する。この場合、リンクを落とすことができる。マスター制御アプリケーションが、無線オフおよびホストとの同期を要求した場合も、リンクを落とすことができ、無線をオフに切り換えることができる。いずれの場合でも、マスター制御アプリケーションは、新たなリンクを再確立するためには、新たな接続要求を発行しなければならない。
2.ホストがリンク・ドロップを要求する。この場合、リンクを落とすことができ、マスター制御アプリケーションに通知することができるが、ホストとの同期は維持することができる。これによって、ホストを検索する必要なく、今後接続を実行することが可能になる。この想定場面では、スマート・トランシーバーは、接続を試行して再確立し、そうした場合、マスター制御アプリケーションに知らせることができる。
3.ホストとの同期が失われる。この場合、スマート・トランシーバーはホストとの同期を取ろうとして、失われた接続を再確立することができる。マスター制御アプリケーションにはその推移を知らせることができるが、接続メッセージを再度送る必要はない。
音声接続要求]
[0151] 一旦アプリケーションがアップして実行すると、マスター制御アプリケーションはスマート・トランシーバーに音声接続を依頼することができる。スマート・トランシーバー・チップは、音声デバイス・プロトコル規則を用いてワイヤレス・スロットを選択することができる。接続プロセスが開始すると直ぐに、ホストは接続要求応答を返すことができる。一旦スロットが得られると、接続ステータス報告を送ることができる。バインディング情報がない場合、スマート・トランシーバーはエラー接続応答を返すことができる。
マスター制御アプリケーションからスマート・トランシーバーへの音声接続要求




スマート・トランシーバーからマスター制御アプリケーションへの音声接続応答




リンク・ステータス]
[0152] マスター制御アプリケーションは、リンク・ステータスに照会したい場合がある。加えて、スマート・トランシーバー・アプリケーションは、リンク・ステータスが変化したときに、メッセージを送りたい場合もある。
音声スロット可用性
マスター制御アプリケーションからスマート・トランシーバーへのリンク・ステータス要求




スマート・トランシーバーからマスター制御アプリケーションへのリンク・ステータス




音声バッファ転送]
[0153] 音声バッファは、規則的に1回のメッセージにおいて送ることができる最も長いデーターである。全二重バスのより良い使用を許可するために、マスター制御アプリケーションは、音声バッファを小さい断片に分割するように構成することができる。この構成は、起動時にセットすることができ、実行中にはセットすることができない。パケット0は基本タイプと見なすことができ、音声を分割しない場合、それは転送される唯一の音声パケット・タイプとなることができる。マスター制御アプリケーション・プロセッサーは、正しいデーター・タイプを音声ヘッダーに入れることができるように、スマート・トランシーバー・チップに、どのタイプのコーディングが用いられているのか知らせることができる。スマート・トランシーバーが音声符号化を実行している場合、マスター制御アプリケーションが既にセットしてあるタイプを用いることができる。スマート・トランシーバーは、SPIを通じて受信する音声パケットを追跡し、分割パケットが用いられている場合、ワイヤレス・チャネルを通じて完全なバッファが送られる前に全てのパケットが受信されたことを確認する必要がある場合もある。マスター制御アプリケーションは、それがスマート・トランシーバーから受信したデーターに対して同様の機能を設ける必要がある場合もある。
マスター制御アプリケーションからスマート・トランシーバーへの(上流)バッファ
音声ヘッダー報告




音声トランスポート]
[0154] 音声トランスポートは、音声デバイスにおいて、コマンドの要求およびステータスの報告に用いられる。




PCM音声パケット0〜7]
[0155] マスター制御アプリケーションが、音声復号および符号化を備えるように当該アプリケーションを構成した場合、これらのパケット・タイプはバッファを満たすために用いることができる。コンフィギュレーション・オプション「上流音声パケット・カウント」を用いて、どのパケットを送るのか制御することができる。コマンド・コードが異なるパケットを用いて、スマート・トランシーバーが、正しいバッファ位置を指し示すように、そのDMAを設定できるようにすることができる。表43は、PCMパケットに用いられる最大パケット・サイズを示す。]
[0156] 全てのPCMサンプルは、16ビット、2の補数、リトル・エンディアン・フォーマットとすることができる。これが意味するのは、最初のバイトが最初のサンプルのロー・バイトであり、2番目のバイトが最初のサンプルのハイ・バイトである等ということである。加えて、16ビット未満のADCを用いる場合、サンプルを左に揃えるとよい。








スマート・トランシーバーからマスター制御アプリケーションへの(下流)バッファ
音声ヘッダー要求




音声トランスポート]
[0157] 音声デバイスにおいて、コマンド要求およびステータス報告のために、音声トランスポートを用いることができる。




PCM音声パケット0〜7]
[0158] マスター制御アプリケーションが、音声復号および符号化を備えるように当該アプリケーションを構成した場合、これらのパケット・タイプが送られる。コンフィギュレーション・オプション「下流音声パケット・カウント」を用いて、パケットをいくつ送るか制御することができる。表47は、PCMパケットに用いられる最大パケット・サイズを示す。尚、パケットは、マスター制御アプリケーション・プロセッサーに、データーCRCの有効性が確認できたか否か知らせるために、ステータスのために余分なバイトを収蔵することができることを注記しておく。









補足資料B
データー・サービスの要求機能]
[0159] API要求関数は、APIレベルでの通信スタックにおけるアクションを開始するために、アプリケーションからコールすることができる。API機能の前および後ろに_reqを付けることができる。]
[0160] Xair_MdDataReq]
[0161] Xair_MdConnectReq]
[0162] Xair_MdDisconnectReq]
[0163] データー・サービスについてのイベント
Xair_MdDatalnd]
[0164] Xair_MdConnectConf]
[0165] Xair_MdDisconnectConf]
[0166] Xair_MdDisconnectlnd]
[0167] Xair音声サービスのための要求機能
Xair_MvConnectReq]
[0168] Xair_MvDisconnectReq]
[0169] Xair音声サービスについてのイベント
Xair_MvTxRxInd]
[0170] Xair_MvConnectConf]
[0171] Xair_MvDisconnectConf]
[0172] Xair_MvDisconnectlnd]
[0173] Xair_MvSampleRatelnd]
[0174] Xair管理サービスのための要求機能
Xair_MmInitReq]
[0175] Xair_MmStartReq]
[0176] Xair_MmResetReq]
[0177] Xair_MmPowerDownReq]
[0178] Xair_MmBindReq]
[0179] Xair_MmstopBindReq]
[0180] Xair_MmReadReq]
[0181] Xair_MmWriteReq]
[0182] Xair管理サービスについてのイベント
Xair_Mmsmart TransceiverComReadyInd]
[0183] Xair_MmStartConf]
[0184] Xair_MmRResetInd]
[0185] Xair_MmBindConf]
[0186] Xair_MmStopBindConf]
[0187] Xair_MmReadConf]
[0188] Xair_MmWriteConf]
[0189] Xair_MmSyncInd]
[0190] Xair GPIOサービスのための要求機能
Xair_MgIoReq]
[0191] Xair GPIOサービスについてのイベント
Xair_MgIoConf]
[0192] Xair_MgIoInd]
[0193] Xair_MpSendRawSpiDataReq]
[0194] イベントおよびバッファ処理機能
Xair_GetEvent]
[0195] Xair_ReadEventDetails]
[0196] Xair_PutVoiceBuffer]
[0197] Xair_GetVoiceBuffer]
[0198] APIのコンフィギュレーションおよび設計
APIの全てのコンフィギュレーションは、"xair_api_xib.h"ヘッダー・ファイルにおける定義によって行うことができる。ここでは、完全なAPIは、マスター制御アプリケーション・システムにおいて利用可能な資源に関して調節可能とすることができる。
RX/TXデーターを整列させるためのバッファの数は、XIB_TX_DATA_QUEUE_SIZE、XIB_EVENT_QUEUE_SIZE、XIB_RX_DATA_QUEUE_SIZE によって調節可能である。したがって、マスター制御アプリケーション・システムの利用可能なメモリー空間に関して、用いられるキュー・サイズを調節することができる。
用いられるEEPROMのタイプおよび記憶サイズは、XIB_EEPROM_TYPE、
XIB_PERSISTENT_STORE_SIZE によって構成可能である。
SPIモードは、XIB_SPI_MODE によってセットされる。
モード0...3をセットすることができる。デフォルトは、SPIモード0である。
スマート・トランシーバー・チップによって供給される出力クロックの周波数は、XIB_PROVIDED_CLOCK_FREQUENCY によってセットすることができる。クロックを12、24、または48MHzにセットすることができる。デフォルトは12MHzである。
作業アプリケーションのタイプは、XIB_APPLICATION_TYPE によってセットされる。データー、音声、または双方をセットすることができる。デフォルトはデーターである。
統合する音声デバイスの能力は、XIB_VOICE_ABILITY によってセットされる。イネーブルまたはディスエーブルにセットすることができる。デフォルトはイネーブルである。
スマート・トランシーバーが発生するフレーム同期メッセージの位置は、XIB_SYNC_EVENT_POSITION によって調節することができる。SYNC_EVENT_OFF、SYNC_EVENT_FRAMESTART、SYNC_EVENT_BROADCASTまたはSYNC_EVENT_RX_FINISHEDにセットすることができる。デフォルトは、SYNC_EVENT_FRAMESTARTである。
使用される上流音声符号化タイプは、XIB_UPSTREAM_VOICE_ENCODING_TYPE によってセットする。
音声同期メッセージの発生は、XIB_VOICE_SYNC によって設定することができる。イネーブルまたはディスエーブルにセットすることができる。デフォルトはイネーブルである。
スマート・トランシーバー・チップの初期GPIO設定値は、XIB_GPIO_INPUTSによってセットすることができる。

/**< 16ビット、リトル・エンディアンのクリアされたビットは無視を意味し、セットされたビットは入力を意味する */
- XIB_GPIO_INTERRUPT_MASK
/**< 16ビット、リトル・エンディアンのクリアされたビットは無視を意味し、セットされたビットはXair_MgIoIndイベントが入力において受信されたことを意味する */
- XIB_GPIO_OUTPUTS
/**< 16ビット、リトル・エンディアンのクリアされたビットは無視を意味し、セットされたビットはこのビットが出力であることを意味する */
- XIB_GPIO_OUTPUT_TYPE
/**< 16ビット、リトル・エンディアンのクリアされたビットは、これがプッシュ/プルであることを意味し、セットされたビットはこれがオープン・ドレインであることを意味する */
- XIB_GPIO_OUTPUT_INIT
/**< 16ビット、リトル・エンディアン、初期出力状態*/
- XIB_GPIO_INPUT_TYPE
/**< 32ビット、GPIO入力ピン構成、フィールドの2ビット対を用いて、各GPIOピンを定める */

等しいサイズのデーターおよび音声パケット・バッファは、XIB_VOICE_EQ_DATA_BUFFER によってセットする。
TRUEまたはFALSEにセットすることができる。デフォルトはTRUEである。]
[0199] ]
权利要求:

請求項1
ワイヤレス・プロトコル・プロセッサーとシリアル・ペリフェラル・インターフェース(SIP)リンクとを含むゲーミング・システムまたはペリフェラル(142)であって、前記SPIリンクを通じて全二重コマンドおよびデーター・メッセージング・プロトコルを提供するように構成された回路を含み、前記プロトコルは、ヘッダーと可変長ペイロードとを含むデーター・パケットの形成を可能とし、前記ヘッダーはコマンド・フィールドと長さフィールドとを含み、該長さフィールドは前記可変長ペイロードのサイズを表し、前記長さフィールドは、前記コマンド・フィールドの内容に依存し、前記コマンド・フィールドは、前記アプリケーションおよびアプリケーションに特有のコマンドとは独立したコマンドを示す、ゲーミング・システムまたはペリフェラル。
請求項2
請求項1記載のシステムにおいて、前記SPIリンクを通じた全てのトランザクションは、前記少なくとも1つのデーター・パケットをスレーブ・デバイスに送信するマスター・デバイスによって開始され、前記回路は、更に、前記スレーブ・デバイスから応答を受信するように構成され、前記応答は、前記マスターからの要求の結果、前記コマンドへの遵守、および以前の要求からのイベントの発生の指示のうち少なくとも1つを含む、システム。
請求項3
請求項1記載のシステムにおいて、前記回路は、更に、機能モードを選択し、コマンド組を前記機能モードの関数として提供するように構成され、前記機能は、初期化期間中に選択され、製品タイプによって決定される、システム。
請求項4
請求項1記載のシステムにおいて、マスター・デバイスによって送信される前記アプリケーション独立コマンドは、コマンドまたは応答非送出、モード制御、音声同期設定要求、音声コーディング・タイプの設定、リンク・ステータス要求、EEPROM読み出し要求、EEPROM書き込み要求、起動コンフィギュレーション・メッセージ、トランシーバー起動メッセージ要求、ワイヤレス・フレーム同期設定、トランスポート要求の検査、ワイヤレス・スロット・デバッグ・メッセージの要求、GPIO設定、GPIO読み出し/書き込みメッセージ、マスターEEPROM読み出し応答、およびマスターEEPROM書き込み応答、のうち少なくとも1つを含む、システム。
請求項5
請求項1記載のシステムにおいて、スレーブ・デバイスによって送信される前記アプリケーション独立コマンドは、メッセージ失敗、モード制御応答、バッファ警告、バッファ警告解消、音声同期設定応答、音声同期メッセージ、音声コーディング・タイプ応答、リンク・ステータス、EEPROM読み出し応答、EEPROM書き込み応答、起動コンフィギュレーション応答、スマート・トランシーバー起動メッセージ、ワイヤレス・フレーム同期設定応答、ワイヤレス・フレーム同期、検査、のうち少なくとも1つを含む、システム。
請求項6
請求項1記載のシステムであって、更に、前記SPIドライバを通じて前記ワイヤレス・プロトコル・プロセッサーへのアクセスを与えるように構成された回路を含み、前記ワイヤレス・プロトコル・プロセッサーへのアクセスを提供するように構成された前記回路は、前記ワイヤレス・リンクを通じて固定サイズのデーター・パケットを送信及び受信するデーター・サービスと、前記ワイヤレス・リンクを通じて音声パケットを送信および受信する音声サービスと、他のサービスのパラメータを構成するレイヤ管理サービスと、前記ワイヤレス・プロトコル・プロセッサーの予備ピンにおいてビット指向入力/出力を実行するGPIOサービスと、前記ワイヤレス・プロトコル・プロセッサーの製品検査インターフェースへのアクセスを与える製品検査サービスとを含む、システム。
請求項7
シリアル・ペリフェラル・インターフェースを通じて全二重コマンドおよびデーター・メッセージング・プロトコルを提供する方法であって、16ビットのヘッダーと可変長のペイロードとを含む少なくとも1つのデーター・パケットを形成するステップであって、前記ヘッダーはコマンド・バイトと長さバイトとを含み、該長さフィールドは前記可変長ペイロードのサイズを表し、前記長さフィールドは、前記コマンド・フィールドの内容に依存し、前記コマンド・フィールドは、アプリケーションとは独立したコマンドまたはアプリケーションに特有のコマンドを含むコマンドを示す、ステップと、前記少なくとも1つのデーター・パケットをスレーブ・デバイスに送信することによって、トランザクションを開始するステップと、前記少なくとも1つのデーター・パケットに対して応答を送信するステップと、を含む、方法。
請求項8
請求項8記載の方法において、全てのトランザクションは、前記少なくとも1つのデーター・パケットを送信するマスター・デバイスによって開始され、前記応答は、前記マスターからの要求の結果、前記コマンドへの遵守、および以前の要求からのイベントの発生の指示のうち少なくとも1つを含む、方法。
請求項9
請求項7記載の方法であって、更に、機能モードを選択し、コマンド組を前記機能モードの関数として提供するステップを含み、前記機能モードは、初期化期間中に選択され、製品タイプによって決定される、方法。
請求項10
請求項7記載の方法において、マスター・デバイスによって送信される前記アプリケーション独立コマンドは、コマンドまたは応答非送出、モード制御、音声同期設定要求、音声コーディング・タイプの設定、リンク・ステータス要求、EEPROM読み出し要求、EEPROM書き込み要求、起動コンフィギュレーション・メッセージ、トランシーバー起動メッセージ要求、ワイヤレス・フレーム同期設定、トランスポート要求の検査、ワイヤレス・スロット・デバッグ・メッセージの要求、GPIO設定、GPIO読み出し/書き込みメッセージ、マスターEEPROM読み出し応答、およびマスターEEPROM書き込み応答、のうち少なくとも1つを含む、方法。
請求項11
請求項7記載の方法において、スレーブ・デバイスによって送信される前記アプリケーション独立コマンドは、メッセージ失敗、モード制御応答、バッファ警告、バッファ警告解消、音声同期設定応答、音声同期メッセージ、音声コーディング・タイプ応答、リンク・ステータス、EEPROM読み出し応答、EEPROM書き込み応答、起動コンフィギュレーション応答、スマート・トランシーバー起動メッセージ、ワイヤレス・フレーム同期設定応答、ワイヤレス・フレーム同期、トランスポート検査応答、GPIO設定応答/ステータス、およびGPIOステータス/応答メッセージ、のうち少なくとも1つを含む、方法。
請求項12
アプリケーション・プログラミング・インターフェース(API)を用いてワイヤレス・プロトコル・プロセッサーへのアクセスを与える方法であって、シリアル・ペリフェラル・インターフェース(SPI)ドライバを通じて前記ワイヤレス・プロトコル・プロセッサーと通信するステップと、アプリケーションと前記ワイヤレス・プロトコル・プロセッサーとの間において電力モードおよび機能状態を同期させるステップと、前記アプリケーションのワイヤレス・データーおよび音声送信機能を調整するステップと、を含む、方法。
請求項13
請求項12記載の方法において、前記APIは、前記SPIドライバを用いて前記SPIを通じて前記ワイヤレス・プロトコル・プロセッサーとの通信を行い、前記ワイヤレス・プロトコル・プロセッサーの設定を簡略化し、前記アプリケーションと前記ワイヤレス・プロトコル・プロセッサーとの間において電力モードおよび機能状態を同期させ、前記アプリケーションのワイヤレス・データーおよび音声送信機能のフレームワークを規定し、前記アプリケーションの前記ワイヤレス・プロトコル・プロセッサーとの通信のデバッギングをサポートするように構成された、方法。
請求項14
請求項12記載の方法であって、更に、前記ワイヤレス・リンクを通じて固定サイズのデーター・パケットを送信及び受信するデーター・サービスと、前記ワイヤレス・リンクを通じて音声パケットを送信および受信する音声サービスと、他のサービスのパラメータを構成するレイヤ管理サービスと、前記ワイヤレス・プロトコル・プロセッサーの予備ピンにおいてビット指向IOを実行するGPIOサービスとを提供するステップを含む、方法。
請求項15
請求項12記載の方法において、前記データー・サービスは、更に、サービス・プリミティブを含み、該サービス・プリミティブは、更に、要求プリミティブ、指示プリミティブ、確認プリミティブ、および応答プリミティブを含む、方法。
类似技术:
公开号 | 公开日 | 专利标题
US20190361743A1|2019-11-28|Rdma | data transfer in a virtual environment
US20190129720A1|2019-05-02|Method, device and system for control signalling in a data path module of a data stream processing engine
US10773161B2|2020-09-15|Mobile phone game interface
US10387348B2|2019-08-20|PCI express tunneling over a multi-protocol I/O interconnect
US9921998B2|2018-03-20|Sensors global bus
KR101982733B1|2019-05-27|Usb 허브들을 이용한 자동차 시스템들로의 유연한 모바일 디바이스 접속성
US20180101494A1|2018-04-12|Presenting multiple endpoints from an enhanced pci express endpoint device
US9036464B2|2015-05-19|Method and system for distributing network traffic among multiple direct hardware access datapaths
US20170249281A1|2017-08-31|Techniques for Use of Vendor Defined Messages to Execute a Command to Access a Storage Device
US8359411B2|2013-01-22|Data filtering using central DMA mechanism
RU2631137C2|2017-09-19|Связывание устройств
US20170013066A1|2017-01-12|Application launching in conjunction with an accessory
US7925795B2|2011-04-12|Method and system for configuring a plurality of network interfaces that share a physical interface
KR100893541B1|2009-04-17|다수의 클라이언트 간의 물리 장치 공유
JP5599768B2|2014-10-01|Communication between accessory and mobile computing device using application communication protocol
US7937447B1|2011-05-03|Communication between computer systems over an input/output | bus
US7451456B2|2008-11-11|Network device driver architecture
JP5826287B2|2015-12-02|Data synchronization
US5909559A|1999-06-01|Bus bridge device including data bus of first width for a first processor, memory controller, arbiter circuit and second processor having a different second data width
US8392925B2|2013-03-05|Synchronization mechanisms based on counters
US7948999B2|2011-05-24|Signaling completion of a message transfer from an origin compute node to a target compute node
US7013353B2|2006-03-14|Host-fabric adapter having an efficient multi-tasking pipelined instruction execution micro-controller subsystem
KR101522801B1|2015-05-26|액세서리와 공조하는 애플리케이션 개시
US6948004B2|2005-09-20|Host-fabric adapter having work queue entry | ring hardware assist | mechanism
TWI447650B|2014-08-01|中斷分佈方案
同族专利:
公开号 | 公开日
US20090137318A1|2009-05-28|
US20120017223A1|2012-01-19|
CN101874241A|2010-10-27|
IL229029D0|2013-12-31|
EP2215551A4|2012-12-05|
EP2215551A2|2010-08-11|
JP5250042B2|2013-07-31|
US8060681B2|2011-11-15|
IL204935D0|2010-11-30|
IL229029A|2014-12-31|
WO2009070460A3|2009-08-13|
CA2702466C|2017-06-06|
US8230150B2|2012-07-24|
US20090138638A1|2009-05-28|
IL204935A|2014-06-30|
WO2009070460A2|2009-06-04|
CA2702466A1|2009-06-04|
EP2215551B1|2014-06-11|
引用文献:
公开号 | 申请日 | 公开日 | 申请人 | 专利标题
法律状态:
2011-11-15| A621| Written request for application examination|Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20111114 |
2011-11-15| A521| Written amendment|Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20111114 |
2012-11-19| A977| Report on retrieval|Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20121119 |
2012-11-22| A131| Notification of reasons for refusal|Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20121121 |
2013-02-22| A521| Written amendment|Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20130221 |
2013-03-12| TRDD| Decision of grant or rejection written|
2013-03-15| A01| Written decision to grant a patent or to grant a registration (utility model)|Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20130314 |
2013-04-18| A61| First payment of annual fees (during grant procedure)|Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20130412 |
2013-04-19| R150| Certificate of patent or registration of utility model|Ref document number: 5250042 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 Free format text: JAPANESE INTERMEDIATE CODE: R150 |
2013-04-22| FPAY| Renewal fee payment (event date is renewal date of database)|Free format text: PAYMENT UNTIL: 20160419 Year of fee payment: 3 |
2015-04-16| S111| Request for change of ownership or part of ownership|Free format text: JAPANESE INTERMEDIATE CODE: R313113 |
2015-04-24| R350| Written notification of registration of transfer|Free format text: JAPANESE INTERMEDIATE CODE: R350 |
2016-04-19| R250| Receipt of annual fees|Free format text: JAPANESE INTERMEDIATE CODE: R250 |
2017-04-11| R250| Receipt of annual fees|Free format text: JAPANESE INTERMEDIATE CODE: R250 |
2018-04-03| R250| Receipt of annual fees|Free format text: JAPANESE INTERMEDIATE CODE: R250 |
2019-04-02| R250| Receipt of annual fees|Free format text: JAPANESE INTERMEDIATE CODE: R250 |
2020-03-31| R250| Receipt of annual fees|Free format text: JAPANESE INTERMEDIATE CODE: R250 |
2021-03-31| R250| Receipt of annual fees|Free format text: JAPANESE INTERMEDIATE CODE: R250 |
优先权:
申请号 | 申请日 | 专利标题
[返回顶部]